Panda3D engine cheatsheet suited to my personal needs, not complete yet. REFERENCE: https://www.panda3d.org/reference/1.9.4/python/annotated very well documented GENERAL: two native file formats: egg (ASCII, backward compatible), bam (binary, not-backwards compatible), there are egg2bam and bam2egg programs Z Y rotation order: HPR (high pitch roll, around Z around X around Y) | / |/__ X with low performance try flattenLight(), flattenMedium(), flattenStrong() COMPILING: ARCHITECTURE: CLASSES: panda3d.core.NodePath references a scene node as a path in scene graph from the root, provides interface to manipulate the node NodePath attachNewNode(node) attach new node as a child of the referenced node, this is preferred way of adding nodes to scene graph clear() set to empty path, no node will be referenced after this detachNode() detaches the referenced node from its parent (but doesn't delete it) int flattenLight() applies transforms and similar things to vertices of the referenced node and its children, may improve performance int flattenMedium() more intense than flattenLight(), also gets rid of groups with one child, may improve performance int flattenStrong() more intense than flattenMedium(), also merges siblings, but may also lower performance by making one huge node forceRecomputeBounds() forces recomputation of all the bounding volumes of the referenced node and its children getAncestor(i) get the ith ancestor (0 is the node itself) withing the node path NodePath getChild(i) get a nodepath of the nth child of the referenced node LColor getColor() get the color assigned to the referenced node NodePath getCommonAncestor(np) return the NodePath of the lowest common ancestor float getDistance(NodePath) get distance between the referenced node and other NodePath's node float getH() getP() getR() methods for getting HPR rotation of the referenced node LMatrix4 getMat() get the transform matrix of the referenced node str getName() get the referenced node's name PandaNode getNode(i) get the ith referenced PandaNode (0 is the node itself, 1 is the parent etc.) int getNumChildren() get the number of the referenced node's children int getNumNodes() get the number of nodes in the path NodePath getParent() get the NodePath shortened by one (equivalent to getAncestor(1)) LPoint3 getPos() get the referenced node's position LVector3 getPosDelta() get the position difference against the previous frame (but must have been set with setFluidPos(...), not setPos(...)) float getSx() getSy() getSz() get scale in given direction Texture getTexture(stage) get the referenced node'S texture with optional stage panda3d.core.MemoryBase anything that can be allocated and deleted | \_panda3d.core.ReferenceCount object whose references are counted | | int rgetRefCount() get the number of references | | ref() increment the reference count | | bool unref() decrease the reference count \_panda3d.core.Namable something that has a string name | str getName() get the name | setName(name) set the name | \_panda3d.core.PandaNode scene graph node __init__(name) create a new node addChild(pandaNode c, int s) add a new child node and sort it by s, if added twice, only one remains, use attachNewNode(...) instead of this clearTransform() clear the node transform to identity PandaNode combineWith(another) tries to merge this node with another one and return the new node copyAllProperties(PandaNode) copies all attrs of this node (transform, effects, ...) to another node RenderAttrib getAttrib(i) get the ith render attribute (alpha, fog, ...) of the node BoundingVolume getBounds() return the bounding volume of the node, type of the volume can be checked with getBoundsType() PandaNode getChild(i) get the ith child node [] getChildren() get list of child nodes int getInternalVertices() get the number of vertices that will be rendered for the node (but not its children) int getNestedVertices() get the number of vertices that will be rendered for the node (including children) int getNumChildren() get the number of child nodes int getNumParents() get the number of parents PandaNode getParent(i) get ith parent node [] getParents() get parent node list removeAllChildren() removes all children of the node removeChild(i) remove its child setAttrib(RenderAttrib) add given render attrib (alpha, fog, ...) to the node, if attrib of the same type exists, it is replaced setBoundsType(type) set the bounding volume type (BT_default, BT_best, BT_sphere, BT_box, BT_fastest) setEffect(RenderEffect) add given effect to affect the node rendering, if effect of the same type exists, it is replaced stealChildren(PandaNode) move all children from other node to this one